]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
[lookingGlass] Paint border around current result if instanceof Clutter.Actor
authorColin Walters <walters@verbum.org>
Wed, 11 Nov 2009 18:12:55 +0000 (13:12 -0500)
committerColin Walters <walters@verbum.org>
Wed, 11 Nov 2009 21:36:42 +0000 (16:36 -0500)
It's very convenient to drill down through object properties and
be able to see exactly which portion of the screen those actors
correspond to, without trying to guess with the inspector tool.

js/ui/lookingGlass.js

index 35431f0ad59340e7c70193876594999016bc8426..afe99b8649941eec4cdf9f0c52d33721fbc09808 100644 (file)
@@ -320,6 +320,10 @@ LookingGlass.prototype = {
         this._savedText = null;
         this._historyNavIndex = -1;
         this._history = [];
+        this._borderPaintTarget = null;
+        this._borderPaintId = 0;
+        this._borderDestroyId = 0;
+
         this._readHistory();
 
         this._open = false;
@@ -487,6 +491,18 @@ LookingGlass.prototype = {
         this._results.push(result);
         this._resultsArea.append(result.actor, Big.BoxPackFlags.NONE);
         this._propInspector.setTarget(obj);
+        if (this._borderPaintTarget != null) {
+            this._borderPaintTarget.disconnect(this._borderPaintId);
+            this._borderPaintTarget = null;
+        }
+        if (obj instanceof Clutter.Actor) {
+            this._borderPaintTarget = obj;
+            this._borderPaintId = Shell.add_hook_paint_red_border(obj);
+            this._borderDestroyId = obj.connect('destroy', Lang.bind(this, function () {
+                this._borderDestroyId = 0;
+                this._borderPaintTarget = null;
+            }));
+        }
         let children = this._resultsArea.get_children();
         if (children.length > this._maxItems) {
             this._results.shift();
@@ -582,6 +598,12 @@ LookingGlass.prototype = {
         this._open = false;
         Tweener.removeTweens(this.actor);
 
+        if (this._borderPaintTarget != null) {
+            this._borderPaintTarget.disconnect(this._borderPaintId);
+            this._borderPaintTarget.disconnect(this._borderDestroyId);
+            this._borderPaintTarget = null;
+        }
+
         Main.popModal(this.actor);
 
         Tweener.addTween(this.actor, { time: 0.5,